package com.intretech.tj.gpp

import io.smallrye.config.ConfigMapping
import io.smallrye.config.WithDefault
import io.smallrye.config.WithName

@ConfigMapping(prefix = "service.gpp")
interface GppConfig {
    /**
     * 处理新路径请求（订阅 & 发布）
     */
    @WithName("getNewPath")
    @WithDefault("service/gpp/getNewPath")
    fun newPathTopic(): String?

    /**
     * 处理车辆任务 topic 前缀，发布时需要拼接 taskTopic
     */
    @WithName("taskPrefix")
    @WithDefault("service/gpp/task/")
    fun taskTopicPrefix(): String?

    /**
     * 订阅车辆状态上报
     */
    @WithName("vehicleStatus")
    @WithDefault("device/vehicle/status")
    fun vehicleStatusTopic(): String?

    /**
     * 车辆到达/行驶中避让信息发布
     */
    @WithName("vehicleAvoidance")
    @WithDefault("device/vehicle/avoidance")
    fun vehicleAvoidanceTopic(): String?

    /**
     * 禁用/启用路段设置请求
     */
    @WithName("edgeSetting")
    @WithDefault("service/gpp/edge/setting")
    fun edgeSettingTopic(): String?

    /**
     * 定时发送所有车辆状态
     */
    @WithName("vehicleStatusAll")
    @WithDefault("device/vehicle/status/all")
    fun vehicleStatusAllTopic(): String?

    /**
     * 定时发送地图信息
     */
    @WithName("mapStatusAll")
    @WithDefault("device/map/status/all")
    fun mapStatusAllTopic(): String?
}